Page({
    data: {
        info: null, // 详情数据
    },

    onLoad(query) {
        console.log('Detail onLoad', query)
        // 修改 data.info
        this.setData({
            'info.id': query.id,
            'info.name': query.name
        })


        /**
         * 参数比较多的时候，可以通过 通道对象来传递
         */
        const eventChannel = this.getOpenerEventChannel()
        eventChannel.on('set', (payload) => {
            console.log('set 自定义事件被触发了', payload)
            // ...
        })
    },

    fn1() {
        const newName = this.data.info.name + '~'
        // 做一些事情
        this.setData({
            'info.name': newName
        })

        // 修改成功
        wx.showToast({
            title: '修改成功',
            icon: 'none'
        })

        /**
         * 1. 通过 getCurrentPages() 获取页面历史栈
         *      1. 获取上一个页面的实例对象
         *      2. 使用 setData 修改数据
         */
        // const pages = getCurrentPages()
        // const currentPage = pages[pages.length - 1]
        // const prevPage = pages[pages.length - 2]
        
        // const index = prevPage.data.fruits.findIndex(item => item.id === this.data.info.id)
        // // console.log('index', index)
        // prevPage.setData({
        //     // fruits: [{id: 1, name: '张三'}]
        //     [`fruits[${index}]`]: {
        //         ...prevPage.data.fruits[index],
        //         name: newName
        //     }
        // })

        /**
         * 2. 通过 eventChannel 数据通道对象来实现页面通信
         *      1. 使用 this.getOpenerEventChannel()
         *      2. 调用 eventChannel.emit() 来触发自定义事件
         */
        const eventChannel = this.getOpenerEventChannel()
        eventChannel.emit('abcd', newName)

        setTimeout(() => {
            // 后退页面
            wx.navigateBack()
        }, 1500)


    }
})